package com.njchy.statistics.service;


import com.njchy.statistics.entity.RiverInfo;
import com.njchy.statistics.entity.dto.MatchIncomingPointsDTO;
import com.njchy.statistics.entity.dto.RiverSumDTO;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

@Service
public interface AllServices {


    /**
     * 区间内面积和体积计算
     * 仅统计fkid相同且表一value - 表二value > 0的数据
     * 返回格式：[{range: "0--0.06", Area: "xx", Volume: "xx"}, ...]
     *
     * @param tableNameOne tableNameTwo
     * @return List<Map<String, String>>
     */
    List<Map<String, String>> getAreaStatistic(String tableNameOne, String tableNameTwo);

    /**
     * 面积和体积计算
     * 仅统计fkid相同且表一value - 表二value > 0的数据
     * 返回格式：{TotalArea: "xx", totalVolume: "xx"}
     *
     * @param tableNameOne tableNameTwo
     * @return Map<String, String>
     */
    Map<String, String> getVolumeStatistic(String tableNameOne, String tableNameTwo);


    /**
     * 根据传入的点，进行数据查找匹配
     *
     * @param dto
     * @return
     */
    Map<String, List<Map<String, String>>> getMatchIncomingPoints(MatchIncomingPointsDTO dto);


    /**
     * 获取河段统计
     */
    RiverSumDTO getRiverDataSum();


    /**
     * 获取统计列表
     */

    List<RiverInfo> selecRivertList();


    /**
     * 单个点位的查询数据匹配
     *
     * @param tableName
     * @param point
     * @return
     */
    List<Map<String, Object>> singleTableData(String tableName, String point);

//    /**
//     * 范围面数据统计（查询范围内对象，统计Value的累加值*0.09算整体的差值，统计Value的个数*0.09）
//     */
//    Map<String, String> areaStatistic();


}
